package lingou.homework.postbar.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import lingou.homework.postbar.domain.Post;
import lingou.homework.postbar.domain.Pubpost;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface PubPostMapper extends BaseMapper<Pubpost> {

    /**
     * 获取公共帖子列表（按序号排序）
     * 参考代码：
     * select * from pub_post natural join post
     *      where title regexp #{regexp} or content regexp #{regexp}
     *      order by postID desc
     *      limit #{start}, #{count}
     * @param start 起始位置
     * @param count 获取帖子的数量（筛选后的数量）
     * @param regexp 用于搜索的正则表达式，为null时不筛选
     * @param tags tagId列表，筛选含有列表中任意tagId的帖子，为null时不筛选
     * @param userID userID，筛选该用户发布的帖子，为null时不筛选
     * @return
     */
    List<Post> getPublicPosts(@Param("start") long start,
                              @Param("count") long count,
                              @Param("regexp") String regexp,
                              @Param("tags") long[] tags,
                              @Param("userID") Long userID);



}
